C语言指针-字符指针整型指针char*s int*a

案例代码

#include<stdio.h>
#include<stdlib.h> 
#include<string.h>
int main()
{//字符指针char *pstr="good dog ww";printf("字符指针指向的字符串内容:%s\n",pstr);printf("字符指针本身的地址:%p\n",&pstr);printf("字符指针指向的地址:%p\n",pstr);printf("字符串常量的地址:%p\n","good dog ww");printf("字符串的首个字符内容:%c\n",*pstr);printf("======================================\n");//字符数组char c[]="hello";printf("字符数组内容:%s\n",c);printf("字符数组地址:%p\n",c);printf("字符数组地址:%p\n",&c);printf("hello字符串常量的地址:%p\n","hello");printf("..........................\n");char *s="abcstring";printf("s的内容:%s\n",s);printf("s本身的地址:%p\n",&s);printf("s指向的地址:%p\n",s);printf("abcstring字符串常量的地址:%p\n","abcstring");printf("...........................\n");s="hello";printf("s的内容:%s\n",s);printf("s本身的地址:%p\n",&s);printf("s指向的地址:%p\n",s);printf("======================================\n");//整型指针int a=1;printf("a的值:%d\n",a);printf("a的地址:%p\n",&a);printf("...........................\n");int* b=&a;printf("b的地址:%p\n",&b);printf("b指向的地址:%p\n",b);printf("b指向的内容:%d\n",*b);getchar();return 0;}
输出:
字符指针指向的字符串内容:good dog ww
字符指针本身的地址:0057FA7C
字符指针指向的地址:00EB5938
字符串常量的地址:00EB5938
字符串的首个字符内容:g
======================================
字符数组内容:hello
字符数组地址:0057FA6C
字符数组地址:0057FA6C
hello字符串常量的地址:00EB5888
..........................
s的内容:abcstring
s本身的地址:0057FA60
s指向的地址:00EB5810
abcstring字符串常量的地址:00EB5810
...........................
s的内容:hello
s本身的地址:0057FA60
s指向的地址:00EB5888
======================================
a的值:1
a的地址:0057FA54
...........................
b的地址:0057FA48
b指向的地址:0057FA54
b指向的内容:1*
/

在函数中使用指针

#include<stdio.h>
#include<string.h>
//整型指针
int search(int *arr,int len,int find)
{int i;for(i=0;i<len;i++){if(find==arr[i]){return i;}}return -1;
}//字符指针
char* increase(char* c)
{int i;for(i=0;i<strlen(c);i++){c[i]=c[i]+1;}return c;
}
int main()
{int arr[]={1,2,3};int len=sizeof(arr)/sizeof(int);printf("结果为:%d\n",search(arr,len,3));char c[]="ABCDEF";printf("%s\n",c);increase(c);printf("%s\n",c);getchar();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/446558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ primer 第10章 泛型算法

文章目录概述findcount初识泛型算法只读算法只读算法accumulate只读算法equal写容器元素的算法算法fill算法fill_nback_inserter算法copy算法replace replace_copy重排容器元素的算法sortuniqueunique_copy定制操作向算法传递函数谓词算法stable_sort算法partitionlambda表达式…

C语言常用字符串函数

概括 代码 #include<stdlib.h> #include<stdio.h> #include<string.h> int main() {//常用字符串函数char a[]"abcSDFbnm";char b[]"SD";printf("a的字符串长度:%d\n",strlen(a));printf("b的字符串长度:%d\n",str…

C++ primer 第11章 关联容器

文章目录使用关联容器map示例关联容器概述定义关联容器关联容器值初始化multimap和multiset关键字类型的要求pair类型pair上的操作关联容器操作关联容器额外的类型别名关联容器迭代器map迭代器set迭代器关联容器和算法添加元素向map添加元素检测insert的返回值使用insert代替下…

C++ primer 第12章 动态内存

文章目录前言动态内存与智能指针shared_ptr类shared_ptr和unique_ptr都支持的操作shared_ptr独有的操作make_shared 函数shared_ptr的拷贝和赋值shared_ptr自动销毁所管理的对象shared_ptr还会自动释放相关联的内存程序使用动态内存出于以下原因直接管理内存使用new动态分配和初…

C语言顺序查找二分查找

介绍 顺序查找 按照顺序一个个查找 #include<stdio.h> //顺序查找 int search(int arr[],int len,int aim) {int i;for(i0;i<len;i){if(arr[i]aim){return i;//返回下标 }}return -1;//表示未查询到} int main() {int arr[]{13,355,256,65,234,-1,35,-6,-3,-4,0};…

C++ primer 第12章 12.3 使用标准库:文本查询程序

文章目录使用标准库&#xff1a;文本查询程序文本查询程序设计数据结构在类之间共享数据自己的文本查询程序书中的文本查询程序使用标准库&#xff1a;文本查询程序 我们将实现一个简单的文本查询程序&#xff0c;作为标准库相关内容学习的总结。 我们的程序允许用户在一个给…

C语言二维数组 int arr[2][3]

基础使用 先遍历行再遍历列 #include<stdio.h> //二维数组的基本使用 int main() {//二维数组的初始化int arr1[2][2]{{2,2},{0,0}};int arr2[2][3]{2,2,2,8,8,8};int arr3[6][9];int i,j;for(i0;i<6;i){for(j0;j<9;j){arr3[i][j]1;}}arr3[2][5]0;//打印printf(&…

牛客网C++面经 类和数据抽象

请你来说一下C中struct和class的区别 在C中&#xff0c;可以用struct和class定义类&#xff0c;都可以继承。区别在于&#xff1a;structural的默认继承权限和默认访问权限是public&#xff0c;而class的默认继承权限和默认访问权限是private。另外&#xff0c;class还可以定义…

C++ primer 第13章 拷贝控制

文章目录前言拷贝、赋值与销毁拷贝构造函数合成拷贝构造函数拷贝初始化和直接初始化拷贝初始化的发生&#xff1a;参数和返回值拷贝初始化的限制拷贝赋值运算符重载赋值运算符合成拷贝赋值运算符析构函数析构函数完成的工作什么时候会调用析构函数合成析构函数代码片段调用几次…

C语言 指针自增自减加减运算 p++ p+i

介绍 自增自减代码 #include<stdio.h> #include<string.h> //指针自增--short void increase(short *arr,int len) {int i;arr&arr[0];for(i0;i<len;i){printf("arr[%d]%d,address%p\n",i,*arr,arr);arr;} }//指针自减--char void decrease(char…

C++ 编译与底层

原文链接 编译与底层请你来说一下一个C源文件从文本到可执行文件经历的过程&#xff1f; 对于C源文件&#xff0c;从文本到可执行文件一般需要四个过程&#xff1a;预处理阶段&#xff1a;对源代码文件中文件包含关系&#xff08;头文件&#xff09;、预编译语句&#xff08;…

C语言 指针数组-字符指针数组整型指针数组 char*s[3] int*a[5] 数组指针int(*p)[4]

基本介绍 1.指针数组:由n个指向整型元素的指针而组成,里面存放指针 Int *ptr[3]; 2.地址: ptr[i]:元素地址 &ptr[i]:指针地址 图示 代码: 内存布局: 代码 #include<stdio.h> #include<string.h> //指针数组--int void pointer(int *arr,int len) {int …

uninitialized_copy测试代码示例

原测试代码如下&#xff1a; int main() {vector<int>v1{1,3,5,7,9,2,4,6,8};allocator<int>alloc;auto data alloc.allocate(9);uninitialized_copy(v1.begin(),v1.end(), data);auto end data 9;while(data!end) {cout << *data <<" "…

C语言的地址 内存

取地址在CPU的寄存器产生&#xff0c;不占据内存地址由计算器总线&#xff0c;地址作为常量不消耗内存指针 存储不同的地址&#xff0c;间接赋值空类型指针 void* 类型指针 不可以取数据 或者修改数据 需要进行强制类型转换int num 10;void *p &num;std::cout << …

C语言 多重指针--整型字符字符串 int**pp

介绍 多重指针:一个指针指向另一个指针 离值越近的指针级别越大:一级 内存布局 代码 图示: 多重指针–整型 #include<stdio.h> #include<string.h> //多重指针--整型//二级指针 void two() {printf("二级指针:\n");int a896;int *p&a,**pp&…

C++ primer 第13章 拷贝控制

文章目录前言拷贝、赋值与销毁拷贝构造函数合成拷贝构造函数拷贝初始化和直接初始化拷贝初始化的发生&#xff1a;参数和返回值拷贝初始化的限制拷贝赋值运算符重载赋值运算符合成拷贝赋值运算符析构函数析构函数完成的工作什么时候会调用析构函数合成析构函数代码片段调用几次…

牛客网C++面经 C++11

请问C11有哪些新特性&#xff1f; auto关键字&#xff1a;编译器可以根据初始值自动推导出类型。但是不能用于函数传参以及数组类型的推导nullptr关键字&#xff1a;nullptr是一种特殊类型的字面值&#xff0c;它可以被转换成任意其它的指针类型&#xff1b;而NULL一般被宏定义…

C语言 返回指针的函数--指针函数 int* max(int a)

定义 strlong示例代码 代码1: #include<stdio.h> #include<string.h> //返回指针的函数//比较两个字符串,返回更长的字符串 char *strlong(char* a,char* b) {char *p1&a[0];char *p2&b[0];while(true){if(*p1\0){return b;}else if(*p2\0){return a;}p1…

第2、3讲 图像的存储格式

本图像处理系列笔记是基于B站杨淑莹老师的课程进行学习整理的。 文章目录黑白图像8位灰度索引图像8位伪彩色索引图像24位真彩色图像图像文件格式BMP文件存储格式BMP文件头位图信息头颜色表位图信息——BITMAPINFO结构BMP位图文件汇总按照颜色深度分类&#xff0c;常用图像文件&…

Ubuntu18.04.4 环境下对属性加密算法CP-ABE环境搭建

注意事项 cpabe依赖pbc&#xff0c;pbc依赖gmp&#xff0c;gmp依赖M4、bison、flex如果权限不够 &#xff0c;命令的前面加上sudo &#xff0c;不要直接使用root用户进行操作&#xff0c;其带来的隐患有很多 第一步 配置简单的环境 简单环境 包括gcc、g、make、cmake、openss…