C語言一看就懂的指針與結(jié)構(gòu)體介紹
指針
指針是C語言或者是c++里面最讓人頭疼的內(nèi)容之一,正所謂指針在手,可以任指天下,這里只是簡單的介紹指針的一些概念,后期我們將會深入剖析指針的基本原理。
注意:一個漢字占2個字節(jié)!
首先我們需要認識一下內(nèi)存這個基本概念:
內(nèi)存是電腦上特別重要的存儲器,計算機中程序的運行都是在內(nèi)存中進行的,為了有效的使用內(nèi)存,就把內(nèi)存劃分成一個個小的內(nèi)存單元,每個內(nèi)存單元的大小是1個字節(jié),為了能夠有效的訪問到內(nèi)存中的每個單元,就把內(nèi)存單元進行了編號,這些編號被稱為內(nèi)存單元的地址。
#include<stdio.h>
int main()
{
int num = 10;//num要在內(nèi)存中開辟空間
#// 取出num的地址,地址也稱為指針,注意這里num是一個整型變量,4個字節(jié),每個字節(jié)都有地址
//但是取出的是第一個字節(jié)的地址(較小的地址)
printf("%p\n\n", &num);//%p是以地址的形式進行打印
int* p = #
*p = 20;//p是用來存放地址的,p是一個指針變量,先解引用在進行賦值
printf("%d\n", *p);//對P指針進行解引用,最終打印出變量的結(jié)果
return 0;
}
總而言之,第一次認識指針,就應該有這樣一個認識,定義指針需要使用 *,然后使用 & 對其進行去地址,將其存放到指針當中,那么最后需要對其指針進行解引用那么就需要再一次使用 *
變量是創(chuàng)建內(nèi)存中的(在內(nèi)存中分配空間的),每個內(nèi)存單元都有地址,所以變量也是有地址的。
指針大小在32位平臺占4個字節(jié),64位平臺占8個字節(jié)
注意編譯器上X86代表32位,X64代表64位


#include <stdio.h>
int main()
{
char ch = 'w';
char* pc = &ch;
*pc = 'q';
printf("%c\n", ch);
return 0;
}字符類型的指針
#include <stdio.h>
//指針變量的大小取決于地址的大小
//32位平臺下地址是32個bit位(即4個字節(jié))
//64位平臺下地址是64個bit位(即8個字節(jié))
int main()
{
printf("%d\n", sizeof(char *));
printf("%d\n", sizeof(short *));
printf("%d\n", sizeof(int *));
printf("%d\n", sizeof(double *));
return 0;
}這里只是對指針進行一個簡單的了解,知道如何創(chuàng)建指針和對其進行簡單的操作即可
結(jié)構(gòu)體
結(jié)構(gòu)體是C語言中特別重要的知識點,結(jié)構(gòu)體使得C語言有能力描述復雜類型。
比如說:我們有一個表格需要進行存儲,那么就會使用結(jié)構(gòu)體進行存儲
比如描述學生,學生包含: 名字+年齡+性別+學號 這幾項信息。
這里只能使用結(jié)構(gòu)體來描述了。
struct Stu
{
char name[20];//名字
int age; //年齡
char sex[5]; //性別
char id[15]; //學號
};
#include <stdio.h>
int main()
{
// 打印結(jié)構(gòu)體信息
struct Stu s = { "張三", 20, "男", "20180101" };
//.為結(jié)構(gòu)成員訪問操作符
printf("name = %s age = %d sex = %s id = %s\n", s.name, s.age, s.sex, s.id);
//->操作符
struct Stu* ps = &s;
printf("name = %s age = %d sex = %s id = %s\n", ps->name, ps->age, ps->sex, ps -> id);
return 0;
}首先定義一個結(jié)構(gòu)體,然后對其結(jié)構(gòu)體分配信息,可以使用.操作符和->操作符進行對其數(shù)據(jù)進行讀取使用,那么在使用->的時候,需要對其結(jié)構(gòu)體實例進行去地址,定義一個結(jié)構(gòu)體指針,這樣我們可以通過取地址的方法快速的獲取信息!

到此這篇關(guān)于C語言一看就懂的指針與結(jié)構(gòu)體介紹的文章就介紹到這了,更多相關(guān)C語言指針與結(jié)構(gòu)體內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux下C語言的幾道經(jīng)典面試題小結(jié)(分享)
下面小編就為大家?guī)硪黄狶inux下C語言的幾道經(jīng)典面試題小結(jié)(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
C語言中l(wèi)seek()函數(shù)和fseek()函數(shù)的使用詳解
這篇文章主要介紹了C語言中l(wèi)seek()函數(shù)和fseek()函數(shù)的使用詳解,是C語言入門學習中的基礎知識,需要的朋友可以參考下2015-08-08
linux下C語言中的mkdir函數(shù)與rmdir函數(shù)
以下是對C語言中的mkdir函數(shù)與rmdir函數(shù)進行了詳細的分析介紹,需要的朋友可以過來參考下2013-08-08

