关于char *file = "Mayuyu"要说的

今天Mayuyu在编程时遇到了一个简短的问题,就是在使用语句char *file = "Mayuyu"时会报警告。警告如下

好了,看到了这个,现在Mayuyu就来分析一下。

char *file = "Mayuyu"这个语句声明了一个指针,指向一块全局的const区域,const内存区当然不是你想改就改,如果你想通过指针file来修改的话,那会导致一个非常严重的错误,不信你可以试试下面的语句。

file[0] = ‘a‘;

strcpy(file, "AKB48");

好了,既然"Mayuyu"是const全局常量区,那么我们同样用一个const指针指向它即可。即使用如下语句

const char *file = "Mayuyu";

这样问题解决,这样当你在修改这个const字符串内容时,编译器会给你一个错误而导致你编译不过,从而不会产生运行时的错误。Mayuyu还有一个问题,就是char *p = "Mayuyu"和char p[] = "Mayuyu"的区别在哪里?关于这个问题以前的文章就写过啦!在这里

链接:http://blog.csdn.net/achelloworld/article/details/23176629

最后Mayuyu再强调一下char *p = "Mayuyu"是不合法的哦!!!!

时间: 2024-09-14 07:20:13

关于char *file = "Mayuyu"要说的的相关文章

01.使用File类读写文件

使用File类去读数据: 方法一:使用ReadAllBytes(); 方法 namespace _01.使用File类读写数据01 { class Program { static void Main(string[] args) { string path = @"C:\Users\zyj\Desktop\.NET base\0505.Net基础班第十二天\抽象类特点.txt"; byte[] b1=File.ReadAllBytes(path); //我们将读取的到的字节数组数据转

Linux 下进程操作,----进程的创建与控制

---恢复内容开始--- 进程是一个程序一次执行的过程,是操作系统动态执行的基本单元. 进程的概念主要有两点:第一,进程是一个实体.每个进程都有自己的虚拟地址空间,包括文本区.数据区.和堆栈区.文本区域存储处理器执行的代码:数据区存储变量和动态分配的内存:堆栈区存储着活动进程调用的指令和本地变量.第二,进程是一个"执行中的程序",它和程序有本质区别.程序是静态的,它是一些保存在磁盘上的指令的有序集合:而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创建.调度和消亡的过程,

SDL显示文字

前面教程里,我们只显示图片,没提到如何显示文字, SDL本身没有显示文字功能,它需要用扩展库SDL_ttf来显示文字.ttf是True Type Font的缩写,ttf是Windows下的缺省字体,它有美观,放大缩小不变形的优点,因此广泛应用很多场合. 使用ttf库的第一件事要从Windows的字库下拷贝出一个字库出来,最好是中文字体,这样可以同时支持英文和中文显示.它一般在c:\windows\fonts 目录下面.比如simhei.ttf 就是仿黑体的字库,将这个文件拷贝到你的源文件目录下.

APUE学习总结

引言 该文档由个人总结,一级标题的序号对应<APUE>第一版的各章,但是二级标题和该书无关,其序号和内容完全是根据个人判断和个人需求进行编写. 3.文件I/O 本章所说明的函数经常被称之为不带缓存的I/O(与第5章中说明的标准I/O函数相对照) 3.1文件I/O函数 大多数UNIX文件I/O只需用到5个函数:open.read.write.lseek.close. 需注意的是write后如需要read,则需要在read前添加lseek,因为write后文件的偏移量在write的最后一个位置(而

在C语言中以编程的方式获取函数名

调试常用的 __FILE__, __FUNCTION__, __LINE__ 调试常用的 __FILE__, __FUNCTION__, __LINE__ 没想到 VC6 不支持 __FUNCTION__ 所以我写了如下的奇怪代码 //用来记录当前行和当前函数//也可说是记录 堆栈void log_stack(const char *file, int line, const char * function); //当然还要对 __FUNCTION__ 宏作点修饰,因为这个宏只是在函数里面才起作

mmap()和fmemopen()的使用

今天Mayuyu遇到了两个比较有意思的函数,即mmap()和fmemeopen()函数. 先来看看mmap()函数,本函数的头文件为#include <unistd.h>和#include <sys/mman.h>.函数原型如下 返回值:若映射成功则返回映射区的内存起始地址,否则返回MAP_FAILED(-1),错误原因存于errno 中. 错误代码: EBADF  参数fd 不是有效的文件描述词. EACCES  存取权限有误.如果是MAP_PRIVATE 情况下文件必须可读,使

深入 kernel panic 流程【转】

一.前言 我们在项目开发过程中,很多时候会出现由于某种原因经常会导致手机系统死机重启的情况(重启分Android重启跟kernel重启,而我们这里只讨论kernel重启也就是 kernel panic 的情况),死机重启基本算是影响最严重的系统问题了,有稳定复现的,也有概率出现的,解题难度也千差万别,出现问题后,通常我们会拿到类似这样的kernel log信息(下面log仅以调用BUG()为例,其它异常所致的死机log信息会有一些不同之处): [ 2.052157] <2>-(2)[1:swa

I2C总线介绍及AT24C02驱动编写 笔记

中断处理程序 { 清除中断 硬件自动清除 软件清除 } CPU芯片手册相关章节 -------- I2C CPU外接设备的方式 1)GPIO简洁的方式(按键,LED) 通过设置GPIO管脚的状态来完成通信(控制) gpccon gpcpud gpcdat 2)类似于内存的接口 (DDRAM norflash nand dm9000) 从硬件上看CPU和芯片 数据线 地址先  BANK 3)协议类接口 uart I2C AT24C02    EEPROM 3,如何解决CPU和设备通信的问题 I2C

检查内存泄漏

1.分配空间 2.记录内存块信息 3.调用构造函数(类型萃取) #include<iostream> #include<string> #include<list> #include<assert.h> using namespace std; struct BlockInfo { void* _ptr; string _file; int _line; BlockInfo(void *ptr, const char*file, int line) :_pt