栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言指针的初步了解

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言指针的初步了解

文章目录
  • 指针变量的定义与初始化
  • 指针变量的引用
  • 指针变量的运算

  • 指针变量与一维字符数组

  • 指针变量与二维数组





前言

因为指针变量也是一个变量,所以编译系统也为它分配一个内存空间,大小一般为4或8个字节。与一般变量一样,它也有地址值,用取地址符&也可得到它的地址。





一、指针变量的定义与初始化

定义一个简单指针变量的格式如下。

类型说明符 *指针变量名;

#include 
int main(void)
{
int a;
int *p=&a;
printf("%ld ,%ldn", &a,p);  //输出变量a的地址值和p的值。
return 0;
}

 




二、指针变量的引用
#include 
int main(void)
{
float *pointer=0,a=100,b=0;
printf("last= %f %fn", a,b);
pointer=&a;  //把变量a的地址赋给指针变量pointer
*pointer=50.0f;    //把50.0f赋给pointer指向的空间
b=*pointer;        //从pointer指向的空间中取值,然后赋给变量b
printf("last= %f %fn", a,b);
return 0;
}

有两个float型数据a,b,通过指针的方式把它们互换。

#include 
int main(void)
{
float a=4.3,b=6.5,temp=0,*p1=0,*p2=0;
p1=&a;     //两个地址指向的数据类型一致,可以赋值。
p2=&b;
temp=*p1;  //把p1指向的变量值赋给temp。
*p1=*p2;   //把p2指向的变量值赋给p1指向的变量。
*p2=temp;  //把temp赋给p2指向的变量。
printf("a=%2.1f,b=%2.1f n",a,b);
return 0;
}

三、指针变量的运算
#include
int main(void)
{
int *p,a=5;
p=&a;             //p的值赋成&a,p指向变量a。
printf("p=%ldn",p);  //输出当前p的值。
p=p+1;     
printf("p=%ldn",p);
return 0;
}


这里的p=p+1;执行后,p的值加一个p指向数据类型占用的字节数。因为这里p指向一个int型数据,一个int型数据在本次使用的编译器中占4个字节,所以+1时一次就加了4。

四,指针变量与一维字符数组

一个由小写英文字母组成的字符串存放在了一个维字符数组str中,用循环把每个小写字母改成大写,最后输出修改后的字符串

#include 
int main(void)
{
char str[10]="abcdef";
char *ch=str;   //定义一个指向char型的指针变量ch,初始化为
//字符数组的第0个字符地址。
for(;*ch!='';ch++)  //ch++后ch的值变化,ch指向下一个字符。
{
	printf("%c",*ch);  //*ch获取内存地址为ch处的数据。
   *ch=*ch-32;      //把*ch的值改成大写字母后赋给*ch。
}
printf("n%sn",str);
return 0;
}

五,指针变量与二维数组

C语言标准规定,类型和元素个数不同的一维数组属于不同的数据类型。如图int a[2][3]={{1,2,3},{4,5,6}};此时a的值是首元素的地址,它指向的数据类型是具有3个int型数据的一维数组,标准数据类型写法是int[3]。

写一个程序,用指针把一个二维数组中的变量值全部输出出来。

#include 
int main(void)
{
    int a[2][3]={{1,2,3},{4,5,6}};
	for(int i=0;i<2;i++)
	{
		for(int j=0;j<3;j++)    //输出一行的数据。
			printf("%d  ",*(*(a+i)+j));
		printf("n");
	}
	return 0;
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/587770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号