C语言中 * “星号”的九种用法
C语言中 * “星号”的九种用法 乘法运算符 复合赋值运算符 假读符 注释符 普通符号 指针定义符 指向运算符 行列地址转换符 地址值符 乘法运算 c=ab; a=2,b=3,c=23=6; 2.复合赋值运算符 i=5; i*=7; 将运算符*=左边变量的值与右边操作数相乘,结果i=35; 3.假读符 mian(){int i,j; scanf(“%3d%*3d%3d”,&i,&j); printf(“i=%3d,j=%3dn”,i,j);} 运行程序输出结果为:i=123,j=789; 中间数字被跳过,称为假读或空读; 4.注释符 c=ab; / 用于注释 */ 5.普通符号 符号“ * ”同数学运算符“ × ”; 6.指针定义符 int *i,*j; //定义两个指针变量i和j; max(int *i,int *j) //首部定义2个形参i和j也是指针变量; int(*p)(); //定义一个指向函数的指针变量p,用来保存函数的入口地址; char *string = “Hello world!”; //定义一个字符型指针变量string,用来保存字符串常量的首地址; typedef char *STRING; //定义一个字符指针类型 STRING; 7.指向运算符 int a=100; int *p_a =& a ; // p_a指向了a; 8.行列地址转换符 二维数组a[i][j]的数组名a前加上使行地址转换为列地址; 例: a+i为第i行行地址,则(a+i)为第i行第0列的列地址; *(a+i)+j为第i行第j列的列地址; ( * (a+i)+j)中的第一个*是指向运算符,指向第i行第j列所在单元,等价于a[i][j]; main(){ int i,j,a[2][4] = {1,2,3,4,5,6,7,8},(*p)[4]; for(p=1,i=0;i<2;++) for(j=0;j<4;j++)*(*(a+i)+j)=*(*(a+i)+j)+1; for(p=a;p for(j=0;j<4;j++) printf("%-2d",*(*p+j)); } outuput:2 3 4 5 6 7 8 9 9.地址值符函数名前的*号,表示函数返回一个地址值。 原文:https://blog.csdn.net/xiaoboliu0602/article/details/78736524 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |