#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include <string.h>
int main()
{
int a = 10;
int* p; //有一种变量是用来存放地址的 - 指针变量,它的数据类型是int*
p = &a; //取地址
printf("%p\n", &a);
printf("%p\n",p); //p的值是a所在的地址
*p = 20; //解引用操作符,间接访问操作符,*p和a是一个东西
printf("%d\n\n", a);
char ch = 'w';
char* pc = &ch;
*pc = 'a';
printf("%c\n", ch);
printf("%d\n", sizeof pc);
printf("%d\n", sizeof(char*)); //指针变量数据类型的大小,至于操作系统位数有关
printf("%d\n", sizeof(int*)); //32位操作系统用32个位存储,64位操作系统64个位存储
printf("%d\n", sizeof(short*));
printf("%d\n\n", sizeof(double *));
//复杂对象 - 结构体 - 自己创造出来的一种数据类型
struct Book //创建一个结构体类型
{
char name[20];
short price;
}; //分号不可缺少
struct Book b1 = { "C语言程序设计",55 };//利用结构体类型创建一个该类型的结构体变量
printf("书名:%s\n价格:%d\n", b1.name,b1.price);
b1.price = 15;
printf("修改后的价格:%d\n\n",b1.price);
struct Book* pb = &b1; //struct Book* 就是一种指针类型
printf("书名:%s\n价格:%d\n\n",(*pb).name, (*pb).price);
printf("书名:%s\n价格:%d\n\n", pb->name, pb->price);
//如何更改结构体中字符串数组的值
//b1.name = "C++";这样改是改不成的
//因为name是数组名,数组名本质上是一个地址
strcpy(b1.name, "C++");
printf("%s\n", (&b1)->name);
return 0;
}
C语言学习笔记05
最新推荐文章于 2024-02-20 17:18:08 发布