1、C中基本数据类型所对应的占位符和输出。
int i = 100;
double d = 200;
float f = 200;
long l = 200;
short s = 100;
cahr c = "a";
printf("i的值是:%d\n, i");//表示整数,%d是占位符,\n是换行
printf("d的值是:%lf\n, i"); //double类型表示long float
printf("f的值是:%f\n, i");
printf("l的值是:%l\n, i");
printf("s的值是:%d\n, i");
printf("c的值是:%c\n, i");
2、C中基本数据类型占据几个字节
printf(“int类型所占据的字节数:%d\n”, sizeof(int));//4
printf(“double类型所占据的字节数:%d\n”, sizeof(double));//8
printf(“char类型所占据的字节数:%d\n”, sizeof(char));//1
3、初识C中的指针
指针 == 地址
%p == 地址输出的占位
& == 取出地址
* == 取出地址所对应的值
int number = 100000;
printf("此number变量的地址是:%p\n", &number);//输出number的内存地址
printf("此number变量的值是:%d\n", *(&number));// 取出number地址所对应的值
int * intp = &number;
printf("此number变量的值是:%d\n", * intp );// 取出number地址所对应的值
内存地址 == 指针
指针 == 内存地址
* intp (int 类型的指针),既然有int,那么当然就有其它的例如double类型了。
指针变量 · 指针别名 == 指针的一个变量 定义: int * aaa,aaa就是代表一个指针的变量
4、通过指针地址修改值
int i = 100;
int * p = i;//这是不规范的,int * 是指针类型,你给它赋值的是一个100的引用,不是指针地址。
int * p = &i;//这才是规范的,它是什么类型,你给它赋值什么类型。
*p = 300;//表示把*p对应的地址的值赋值成300
5、函数的调用与写法
int main(){
change()
return 0;
}
//会报错,正常情况下函数不能写在main下面
void change(){}
//先声明,C语言不允许函数重载,所以后面的方法不能写一样的。java可以,C++可以。
void change(int i);
void change1(int * i) {
*i = 300
}
int main(){
int i = 100;
change(i)
printf("%d\n",i);//i = 100
change1(&i);
printf("%d\n",i);//i = 300
/**
int * i ; 定义指针
*i = 888; 取出指针对应地址的值并赋值位888
*/
return 0;
}
//这种是可以的,这个时候我想的是直接在上面写得了,什么鬼先声明再实现.
//这不跟写接口和实现一样,写了两次了。
void change(int i){
//C/c++z在构建的时候为当前这个函数的形参int类型,i创建一个新的变量,跟上面的i没有半毛钱关系。
i = 200;
}