1.字符串指针

char *变量名="字符串内容";

char ch='b';

char *p1=&ch;

char *str="C Language";//表示s指向字符串的首地址

str="ssssssss";//字符串存在常量区,可以修改s指向的内容

*(str+2)='X';//可以*(str+2)这样访问,但是不能修改。常量区保存的内容都是只读的

常见误区:

char *str2=NULL;

printf("%s",str2);//这样写是错误的,str2没有分配内存空间去存储变量

解决办法:

char *str2=NULL;

str2=malloc(100);

printf("%s",str2);

或者:

char ch3[100];

char *str2=ch3;

printf("%s",str2);

2.二维字符数组

char ch2[3][10]={"abc","def","kkk"};

3.char类型的指针数组和字符数组的区别

char *name[3]={"abc","def","kkk"};//一维指针数组,每个元素存储字符串首地址

#include <stdio.h>

int main(int argc, const char * argv[]) {
char *name[]={"abc","def","kkk"};
for(int i=;i<;i++){
printf("%s\n",*(name+i));//name[i]
} return ;
}

1)字符串指针char *ss="abc";指向可以改变ss="ssssss";

2)字符数组char s1[]="abc"; s1是一个常量,不能被赋值,s1="Helll";是错误的,

4.字符串排序

//
// main.c
// 字符串排序
//
// Created by fanyafang on 15/11/4.
// Copyright © 2015年 itcast. All rights reserved.
// #include <stdio.h>
#include <string.h> void sortString(char *arr[],int length){
char *temp="";
//选择排序
for(int i=;i<length;i++){
for(int j=i+;j<length;j++){
if(strcmp(arr[i], arr[j])>){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
} int main(int argc, const char * argv[]) {
char *arr[]={"China","America","Flash","Toop"}; for(int i=;i<;i++){
printf("%s\n",arr[i]);
}
printf("\n");
sortString(arr,); for(int i=;i<;i++){
printf("%s\n",arr[i]);
} return ;
}

C语言回顾-字符串指针的更多相关文章

  1. Swift3.0语言教程使用指针创建和初始化字符串

    Swift3.0语言教程使用指针创建和初始化字符串 Swift3.0语言教程使用指针创建和初始化字符串苹果的Swift团队花了不少功夫来支持C的一些基础特性.C语言中为我们提供了指针,Swift也不例 ...

  2. C语言中字符数组和字符串指针分析

    这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么 用到过C,虽然网上这类的文章也有很多,还是决定自己在这 ...

  3. c语言字符串指针

    最近正在看c语言,在指针这块遇到了麻烦,特别是字符串指针这块,简单记录下. 字符串指针 void main() { char *p = "tasklist"; printf(&qu ...

  4. C语言复习-字符串与指针

    C语言复习-字符串与指针 例一: [字符串处理 去除C代码中的注释] C/C++代码中有两种注释,/* */和//.编译器编译预处理时会先移除注释.就是把/*和*/之间的部分去掉,把//以及之后的部分 ...

  5. go语言之字符串、指针、数组、切片、结构struct、面向对象

    一: 字符串 概述: Go 语言将字符串作为 种原生的基本数据类型,字 符串的初始化可以使用字符串字面量. (1)字符串是常量,可以通过类 数组 索引访问其字节单元,但是不能修改某个字节的值 (2)宇 ...

  6. C语言 字符串指针和字符串数组使用区别

    字符串指针和字符串数组使用区别 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 ...

  7. 黑马程序员_ C语言基础之指针(三)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 指针是C语言的精髓,但是很多初学者往往对于指针的概念并不深刻,以至于学完之后随着时间的推移 ...

  8. C语言中的指针数组

    C语言中的指针数组是什么,像 char *a[]={"ddd","dsidd","lll"}; 这里讲一下注意如果我们使用了a也就是首元素的 ...

  9. <2014 04 15> C++语言回顾精要(原创By Andrew)

    C++语言回顾精要 <Visual C++程序设计>张岳新,这本书是很多学校的本科生C++教学用书,今天重新拿来翻了一遍.跟很多国人写的技术书籍一样,写书并不是为了让初学者看懂入门,而是为 ...

随机推荐

  1. 工作中的sql语句总结

    1,查找mysql 数据库 自动 添加 序号 字段列1,2,3,4 ) AS rowno,ip,startcount ) b 2,mysql的分页语句 limit后面第一个参数是index,从0开始: ...

  2. [IOS]swift自定义uicollectionviewcell

    刚刚接触swift以及ios,不是很理解有的逻辑,导致某些问题.这里分享一下swift自定义uicollectionviewcell 首先我的viewcontroller不是直接继承uicollect ...

  3. 深入浅出Android App耗电量统计

    前言 在Android统计App耗电量比较麻烦,直至Android 4.4,它仍没公开“电量统计”API或文档……额,是的,仅没有公开,并不是没有.平时在手机“设置- 电量”看到的数据 就是系统调用内 ...

  4. 1.javascript篇(基础)

    js基础部分 js定义: 1.js是通过浏览器解析,然后由浏览器执行的一种脚本语言2.css控制样式,而js控制行为 基本格式: <script type="text/javascri ...

  5. mac安装tensorflow报错

    问题:mac安装tensorflow过程中,爆出oserror:permission denied 解决方案:关闭mac的sip,然后sudo安装 关闭sip的方法:重启mac,按住command+R ...

  6. Vue.js双向绑定的实现原理

    Vue.js最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统.本文仅探究几乎所有Vue的开篇介绍都会提到的hello world双向绑定是怎样实现的.先讲涉及的知识点,再参考源码,用尽可能少 ...

  7. [dpdk] 熟悉SDK与初步使用 (二)(skeleton源码分析)

    接续前节:[dpdk] 熟悉SDK与初步使用 (一)(qemu搭建实验环境) 程序逻辑: 运行参数: 关键API: 入口函数: int rte_eal_init(int argc, char **ar ...

  8. PHP while使用

    $i = 0; while(true){ if($i == 0){ $i++; continue; }else if($i > 10){ break; }else{ echo $i." ...

  9. remi

    很简单呀,又不用自己编译.用 http://rpms.remirepo.net/ 这个 remi 的包,直接 yum install php-swoole 就完事了 安装remi包也很简单, yum  ...

  10. Glide 魔法般的自定义扩展

    使用过Glide的朋友都明白,简单的用法就是: Glide.with(context) .load("http://inthecheesefactory.com/uploads/source ...